1. Technical Field of the Invention
The present invention is related to telephony software interface, and more particularly, to adding the benefit of object-oriented programming and distributed computing to the telephony software interface.
2. Description of Related Art
Advances in computers systems have greatly simplified the task of information processing. Computer systems can typically store large amounts of information in a relatively small area of physical space and permit the information stored to be easily accessed and modified. Computer systems also allow large amounts of information to be processed both quickly and accurately.
Computer systems are sometimes operated as stand-alone devices or connected together by way of network connections, typically together with a server, to form a computer network. When networked together, the resources of each computer can be used together to perform an information processing function. The foregoing is known as distributed computing. A server is a class of computers used to handle file, print, and certain application services which are common to all the connected computers, known as clients. A common use of the server also includes handling and maintaining telephony equipment for use by the clients. Handling and maintaining the telephony equipment at the server is advantageous because the same telephony equipment can be used by any of the clients which can be sparsely located about a geographic area.
Communication of information is one of the most popular uses of computers today. Computers connected across a communication channel or medium are able to transfer large amounts of data electronically. The data is generated by and used within application programs which cause computers to perform useful functions such as word processing, browsing web pages, accessing databases, etc.
There are several communication media that are available to users. One of the most common communications mediums for communication between computers is the telephonic infrastructure. The telephonic infrastructure includes, but is not limited to, the public switched telephone network (PSTN), a private branch exchange (PBX), integrated services digital network (ISDN), and what is known as a T1/E1 line. The foregoing are known in the art as line devices. A user can connect their computer to a line device, and then place a phone call to another computer similarly connected to the telephonic infrastructure. In the networking context, the user at a client can use a line device maintained by a server for communication.
In order for data from application program to be transmitted using a particular line device, model-specific technical details of the particular line device must be known. The model-specific details of the line device can be hardcoded into the application program. However, because the application program is usually sold separately from the line device, the application program could potentially use any of several hundred different line device models. Therefore, programs specific to each potential line device would have to be included in the application program.
An alternative approach is to abstract the model-specific technical details from the application program. A telephony software interface provides a standard interface to any number of application programs, wherein the application programs communicate a standardized set of commands through the interface to telephony software interface. Telephony software receives commands through the telephony software interface and uses a set of files containing the model-specific technical details to effectuate the requests of the application program. Because the model-specific technical details files are separated from the application program, the files can be provided with the line device. Therefore, only the model-specific technical details for the line devices used are installed in the computer. A key advantage to telephone software interfaces are that the application program and the telephony software can be executed on different computers. Therefore, the telephony software at a server can be used to effectuate commands from an application program executed by a client.
A very commonly used telephony software interface is the Telephony Application Programming Interface (TAPI) developed by the Microsoft Corporation and the Intel Corporation. Another example of telephony software interface is the Telephony Services Application Programming Interface (TSAPI) developed by the Novell Corporation. In order for an application program to use a telephony software interface, the application program must conform to certain specifications of the telephony software interface. Conforming to the specifications of a telephony software interface is a cumbersome and tedious process where the telephony software interface is not object-oriented. Object-oriented programming is a form of software development that models the real world through representation of objects or modules that contain data as well as instructions that work upon that data. The objects encapsulate the attributes, relationships, and methods of software-identifiable program components simplifying complex programs.
Additionally, in a networking context where the telephony software interface serves a number of application programs. As each application program conducts operations on the various line devices, the line devices send messages to the application programs. In many cases, several application programs simultaneously perform operation on a single line device. Where the line device requires communication to the application programs, a separate message is sent to each application program. Sending a separate message to each application program results in excess traffic within the telephony software interface.
Accordingly, it would be beneficial if a way of adding object orientation to the telephony software interface as well reducing traffic generated from the messages could be devised.
The present invention is directed to a system, method, and apparatus for transmitting information from an application program on a line device by receiving an object from said application program at an object-oriented interface layer causing a telephony software interface to perform an operation corresponding to the object, receiving a message from the line device at the object-oriented interface layer, forwarding the message to the application program.